home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Telnet / NCSA / tn3270 2.4d7 source / NCSA⁄BYU TCP⁄IP / cksum.a < prev    next >
Text File  |  1991-06-27  |  1KB  |  59 lines

  1.  
  2.  
  3.     blanks off
  4.     case on
  5.  
  6.  
  7. ;    public _ipcheck,_tcpcheck
  8. ipcheck    PROC    EXPORT         ; (integer) sum = ipcheck(buf:Ptr, wdcnt:integer)
  9.      clr.l     d1
  10.      move.l    8(sp),d1            ; move w on Aztec (16b) move l on MPW (32b)
  11.      move.l    4(sp),a0
  12.      subq.l    #1,d1
  13.      clr.l     d0
  14. again
  15.      add.w     (a0)+,d0
  16.      bcc.s     nocar
  17.      addq.w    #1,d0
  18. nocar
  19.      dbra      d1,again
  20.      andi.w       #$0ffff,d0
  21.      eori.w       #$0ffff,d0
  22.      rts
  23.     ENDPROC
  24.     
  25. tcpcheck    PROC  EXPORT            ; (integer) sum = tcpcheck(phd: Ptr,buf:Ptr, btcnt:integer)
  26.      clr.l     d1
  27.      clr.l     d0
  28.      move.l       4(sp),a0
  29.      moveq     #5,d1
  30. again2                ; check the 12 byte pseudo header.
  31.      add.w     (a0)+,d0
  32.      bcc.s     nocar2
  33.      addq.w    #1,d0
  34. nocar2
  35.      dbra      d1,again2
  36.  
  37.      move.l    8(sp),a0
  38.      move.l    12(sp),d1            ; move w on Aztec (16b) move l on MPW (32b)
  39.      asr.w       #1,d1
  40.      bcc.s       onward
  41.      move.l       12(sp),d2
  42.      clr.b       0(a0,d2)
  43.      addq.w       #1,d1
  44. onward
  45.      subq.w       #1,d1
  46. again3
  47.      add.w     (a0)+,d0
  48.      bcc.s     nocar3
  49.      addq.w    #1,d0
  50. nocar3
  51.  
  52.      dbra      d1,again3
  53. tcpend
  54.      andi.w       #$0ffff,d0
  55.      eori.w       #$0ffff,d0
  56.      rts
  57.     ENDPROC
  58.     
  59.     END